使用CMakeLists.txt导入dcmtk库(不使用vs的工程) | 您所在的位置:网站首页 › Win11下DCMTK的Visual Studio 2022配置教程 › 使用CMakeLists.txt导入dcmtk库(不使用vs的工程) |
开发环境: 文章目录 0 前言1 构建CMake工程步骤文件树CMakeLists.txtmain.cpp使用 2 资料使用其他基于dcmtk的库论坛 互相交流论坛 互相交流 文章目录 0 前言1 构建CMake工程步骤文件树CMakeLists.txtmain.cpp使用 2 资料使用其他基于dcmtk的库论坛 互相交流论坛 互相交流 0 前言 前面记录了编译好VS库之后,利用Visual Studio来构建工程,也就是说有一个很大的.vs文件夹以及.sln文件来储存工程的配置。 但是,CMake更为轻量,笔者不否认VS的强大,VS本身就可以打开CMake的工程。因此,本文,笔者使用CMake构建工程。可以利用CLIon或者还是VS来打开CMake的工程。 1 构建CMake工程步骤一个很有用的英文参考资料 事实上,网络关于利用CMake导入dcmtk库的代码相当少,基本没有。也找到一些资料,但是过于复杂。 文件树 -CMakeLists.txt -main.cpp -README.md ─out └─build └─x64-Debug │ dcmdata.dll │ oflog.dll │ ofstd.dll │ testapp.exe其实只需要CMakeLists.txt和main.cpp就可以,Readme.md就是你看到的这篇文章,而out是我用VS生成的,最终的testapp.exe就是可执行文件,然后我们要把 dcmdata.dll和 oflog.dll和 ofstd.dll放到和可执行文件同一个目录。 CMakeLists.txt cmake_minimum_required(VERSION 2.8) PROJECT(testapp) SET(DCMTK_INCLUDE_DIRS "D:\\Programs\\dcmtkdll\\include") SET(DCMTK_LIBRARIES "D:\\Programs\\dcmtkdll\\lib") SET(DCMTK_DIR "D:\\Programs\\dcmtkdll") #an example: SET(DCMTK_DIR "C:\\Users\\test\\test_dcmtk\\DCMTK") #set(CMAKE_CXX_FLAGS -std=c++11) # settings for Microsoft Visual C++ 6 SET(CMAKE_C_FLAGS "/nologo /W3 /GX /Gy /YX") SET(CMAKE_C_FLAGS_DEBUG "/MTd /Z7 /Od") SET(CMAKE_C_FLAGS_RELEASE "/MT /O2") SET(CMAKE_CXX_FLAGS "/nologo /W3 /GX /Gy /YX") SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") ADD_DEFINITIONS(-D_REENTRANT) INCLUDE_DIRECTORIES(${DCMTK_DIR}/include) LINK_DIRECTORIES(${DCMTK_DIR}/lib) ADD_EXECUTABLE(testapp main.cpp) TARGET_LINK_LIBRARIES(testapp netapi32 wsock32 ofstd dcmdata) message("-------------\n") message("${DCMTK_INCLUDE_DIRS}") message("${DCMTK_LIBRARIES}") message(STATUS "${DCMTK_FOUND}") #message("${DCMTK_INCLUDE_DIRS}") message("${DCMTK_DIR}") message(STATUS "-------------\n") main.cpp // C++_Dicom_Sample.cpp : Defines the entry point for the console application. // //#include "stdafx.h" //C++中stdafx.h的英文全称为:standard application fram extend,中文名为:头文件预编译。 // //stdafx.h在c++中起到的作用是:把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,这样可以加快编译速度。 //#include "dcmtk/config/osconfig.h" #include "dcmtk/dcmdata/dctk.h" #include bool ReadPatientName(DcmFileFormat& fileformat, std::string& filePath) { OFCondition status = fileformat.loadFile(filePath.c_str()); if (!status.good()) { std::cout |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |